//! $Id$
//!
//! @file    Exception.h
//! @author  Johan Andersson <skagget77@gmail.com>
//! @date    Fri Oct 02 20:35 2009
//! @ingroup IoCpp
//!

#if !defined(IOCPP_EXCEPTION_H)
#define IOCPP_EXCEPTION_H

#include <stdexcept>

// Non dll-interface class used as base for dll-interface class.
#pragma warning(disable: 4275)

namespace IoCpp
{
   //!
   //!
   //! @author  Johan Andersson <skagget77@gmail.com>
   //! @date    Fri Oct 02 20:35 2009
   //! @ingroup IoCpp
   //!
   //! TypeNotFoundException, thrown when the requested type isn't found in the
   //! resolver cache.
   //!
   struct IOCPP_API TypeNotFoundException : std::runtime_error {
      TypeNotFoundException( const std::string& msg );
   };


   //!
   //!
   //! @author  Johan Andersson <skagget77@gmail.com>
   //! @date    Fri Oct 02 20:35 2009
   //! @ingroup IoCpp
   //!
   //! ProviderNotFoundException, thrown when a provider for the requested type
   //! isn't found in the resolver cache.
   //!
   struct IOCPP_API ProviderNotFoundException : std::runtime_error {
      ProviderNotFoundException( const std::string& msg );
   };
}

#endif   // IOCPP_EXCEPTION_H
